The computer was invented during the 1940's. Since then it has been developed with revolutionary speed. In spite of this, current days computers have almost the same architecture as the first ones.
Most improvements have been in the hardware. The introduction of VLSI and the enhancement in lithography has made it possible to build one chip computers that only five years ago were called super computers. The dimensions have shrunk exponentially and the line width is now less than 1 micrometer. The clock rate as well as the number of active transistors have increased many orders of magnitude. Physical limitations will probably limit the line width to 0.2 micrometer.
During the same time the computer architects have not improved in the use of silicon. On the contrary, most computers have been using more than the optimal amount of silicon in order to be faster.
Both these facts will stop the evolution of the speed of single processors in the next five years. Parallel processors have been introduced resulting in an increased hardware cost because of rising complexity and, for most types of programs, a prohibitive increase of programming costs.
Seen in relation to each other, the hardware costs have shrunk but the programming costs of new systems have grown considerably and will soon be at a prohibitive level.
A computer is a complicated assembly of different units in software and hardware. Different paradigms and stages in the evolution have created standards--ad hoc and established--that are spread out into the system. Because of this nonuniformity there is a great number of interfaces.
All these interfaces and paradigms of different quality and style have made it hard for a user or a programmer to use the machine--it requires a lot of knowledge--and because of the complexity a programmer might introduce hidden errors.
However, recently so-called reduction processors are developing. A reduction processor executes a program having a certain structure including arithmetic expressions and this structure is reduced in a number of reduction steps. Thus, the program is not executed in a given sequence as in other kinds of computers.
There have been some difficulties in developing reduction processors above a limited size.